void drawLinkedAppButton(cairo_t *context, int i) {
  switch(i) {
    DOWN_BUTTON(0, 4, 4);
    DOWN_BUTTON(6, 4, 28);
    case 12: cairo_move_to(context, 104, 52); break;
    case 13: cairo_line_to(context, 104, 180);
             cairo_curve_to(context, 104, 200, 104, 200, 124, 200);
             cairo_line_to(context, 144, 200); break;
    case 14: cairo_line_to(context, 144, 220); break;
    case 15: cairo_line_to(context, 60, 220);
             cairo_curve_to(context, 4, 220, 4, 220, 4, 180);
             cairo_line_to(context, 4, 52); break;
    case 16: cairo_line_to(context, 148, 200); break;
    case 17: cairo_line_to(context, 144, 220); break;
    RIGHT_BUTTON(18, 148, 200);
    RIGHT_BUTTON(24, 252, 200);
    RIGHT_BUTTON(30, 356, 200);
    RIGHT_BUTTON(36, 460, 200);
    RIGHT_BUTTON(42, 564, 200);
    case 48: cairo_move_to(context, 668, 200); break;
    case 49: cairo_line_to(context, 1200, 200); break;
    case 50: cairo_line_to(context, 1200, 220); break;
    case 51: cairo_line_to(context, 668, 220); break;
    default: throw std::logic_error("invalid linked app button draw index");
  }
}
